Network switches/switching units are at the core of any communication network. A network switch typically has one or more input ports and one or more output ports, wherein data/communication packets are received at the input ports, processed by the network switch through multiple packet processing stages, and routed by the network switch to other network devices from the output ports according to control logic of the network switch.
Table search has been widely adopted for the control logic of the network switch, wherein the network switch performs search/lookup operations on the tables stored in the memory of the switch for each incoming packet and takes actions as instructed by the table search results or takes a default action in case of a table search miss. Examples of the table search performed in the network switch include but are not limited to: hashing for a Media Access Control (MAC) address look up, Longest-Prefix Matching (LPM) for Internet Protocol (IP) routing, wild card matching (WCM) for an Access Control List (ACL) and direct memory access for control data. The table search in the network switch allows management of network services by decoupling decisions about where traffic/packets are sent (i.e., the control plane of the switch) from the underlying systems that forwards the packets to the selected destination (i.e., the data plane of the switch), which is especially important for Software Defined Networks (SDN).
Traditionally, table search are performed by fixed function packet processing pipeline having multiple stages in the network switch, wherein each fixed function packet processing stage in the pipeline has its own dedicated memory to store the tables to be accessed by the fixed function packet processing stage. The memory dedicated to one fixed function packet processing stage cannot be accessed by other fixed function packet processing stage and any change to the tables and/or the fixed function packet processing pipeline would require redesign of the network switch. Some network switch adopts flexible packet processing, where a logical table can be stored across multiple physical memories assigned to different flexible function packet processing stages in the pipeline and accessed by a single flexible function packet processing stage. Some network switch with flexible packet processing capabilities further adopts a centralized memory pool, where a plurality of flexible memory pools are grouped together via interconnects on the network switch and can be accessed by any of the flexible function packet processing stages.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent upon a reading of the specification and a study of the drawings.